
 
package com.junitUtil.listener;	
import org.springframework.test.context.TestContext;
import org.springframework.test.context.support.AbstractTestExecutionListener;

import com.junitUtil.annotions.TestDbConfig;
import com.junitUtil.baseTest.AbstractBaseTest;
import com.junitUtil.spring.DataBaseBean;

import org.apache.commons.lang3.StringUtils;



/**
 * TODO(描述这个类的作用) 
 * 
 **/

public class DatabaseInitListeners extends AbstractTestExecutionListener{

    @Override
    public void prepareTestInstance(TestContext testContext) throws Exception {
         Object instance=testContext.getTestInstance();
         if(instance instanceof AbstractBaseTest){
             AbstractBaseTest test=(AbstractBaseTest)instance;
             DataBaseBean bean=test.dataBaseBean;
             TestDbConfig config = test.getClass().getAnnotation(TestDbConfig.class);
             if(config!=null){
                 bean.dataBaseConfigPath=config.dataBaseConfigPath();
                 bean.configPropertiesPath=config.configPropertiesPath();
                 if(StringUtils.isNotEmpty(bean.configPropertiesPath)){
                     bean.readProperty();
                 } 
                 if(StringUtils.isNotEmpty(config.jdbcDriver()))
                     bean.jdbcDriver=config.jdbcDriver();
                 if(StringUtils.isNotEmpty(config.jdbcMaxActive()))
                     bean.jdbcMaxActive=config.jdbcMaxActive();
                 if(StringUtils.isNotEmpty(config.jdbcMinIdle()))
                     bean.jdbcMinIdle=config.jdbcMinIdle();
                 if(StringUtils.isNotEmpty(config.jdbcPassword()))
                     bean.jdbcPassword=config.jdbcPassword();
                 if(StringUtils.isNotEmpty(config.jdbcUrl()))
                     bean.jdbcUrl=config.jdbcUrl();
                 if(StringUtils.isNotEmpty(config.jdbcUsername()))
                     bean.jdbcUsername=config.jdbcUsername();
                  
             }else{
                bean.readProperty();
             }
             
             
             
             
             
             
             
             
         }
    }
}

